home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / etc / RCS / signal.man,v < prev    next >
Text File  |  1988-12-31  |  7KB  |  269 lines

  1. head     1.2;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @@;
  7.  
  8.  
  9. 1.2
  10. date     88.12.31.12.08.55;  author ouster;  state Exp;
  11. branches ;
  12. next     1.1;
  13.  
  14. 1.1
  15. date     88.12.31.12.02.18;  author ouster;  state Exp;
  16. branches ;
  17. next     ;
  18.  
  19.  
  20. desc
  21. @@
  22.  
  23.  
  24. 1.2
  25. log
  26. @Delete VAX-specific part, and stuff that is documented in sigvec.
  27. @
  28. text
  29. @.\" Copyright (c) 1980 Regents of the University of California.
  30. .\" All rights reserved.  The Berkeley software License Agreement
  31. .\" specifies the terms and conditions for redistribution.
  32. .\"
  33. .\"    @@(#)signal.3c    6.4 (Berkeley) 5/20/86
  34. .\"
  35. .TH SIGNAL 3C "May 20, 1986"
  36. .UC 4
  37. .ie t .ds d \(dg
  38. .el .ds d \z'|+'
  39. .ie t .ds b \(bu
  40. .el .ds b @@
  41. .SH NAME
  42. signal \- simplified software signal facilities
  43. .SH SYNOPSIS
  44. .nf
  45. .B #include <signal.h>
  46. .PP
  47. .B (*signal(sig, func))()
  48. .B int (*func)();
  49. .fi
  50. .SH DESCRIPTION
  51. .I Signal
  52. is a simplified interface to the more general
  53. .IR sigvec (2)
  54. facility.  See the \fIsigvec(2)\fR manual entry for complete
  55. details on how signals are handled.
  56. .PP
  57. If
  58. .I func
  59. is SIG_DFL, the default action
  60. for signal
  61. .I sig
  62. is reinstated.
  63. If
  64. .I func
  65. is SIG_IGN the signal is subsequently ignored
  66. and pending instances of the signal are discarded.
  67. Otherwise, when the signal occurs
  68. further occurrences of the signal are
  69. automatically blocked and
  70. .I func
  71. is called.
  72. .PP
  73. A return from the function unblocks
  74. the handled signal and
  75. continues the process at the point it was interrupted.
  76. \fBUnlike previous signal facilities, the handler \fIfunc\fP
  77. remains installed after a signal has been delivered.\fP
  78. .PP
  79. If a caught signal occurs
  80. during certain system calls, causing
  81. the call to terminate prematurely, the call
  82. is automatically restarted.
  83. In particular this can occur
  84. during a
  85. .I read
  86. or
  87. .IR write (2)
  88. on a slow device (such as a terminal; but not a file)
  89. and during a
  90. .IR wait (2).
  91. .PP
  92. The value of
  93. .I signal
  94. is the previous (or initial)
  95. value of
  96. .I func
  97. for the particular signal.
  98. .PP
  99. After a
  100. .IR fork (2)
  101. or
  102. .IR vfork (2)
  103. the child inherits
  104. all signals.
  105. .IR  Execve (2)
  106. resets all caught signals to the default action;
  107. ignored signals remain ignored.
  108. .SH "RETURN VALUE
  109. The previous action is returned on a successful call.
  110. Otherwise, \-1 is returned and 
  111. .I errno
  112. is set to indicate the error.
  113. .SH ERRORS
  114. .I Signal
  115. will fail and no action will take place if one of the
  116. following occur:
  117. .TP 15
  118. [EINVAL]
  119. .I Sig
  120. is not a valid signal number.
  121. .TP 15
  122. [EINVAL]
  123. An attempt is made to ignore or supply a handler for SIGKILL
  124. or SIGSTOP.
  125. .TP 15
  126. [EINVAL]
  127. An attempt is made to ignore SIGCONT (by default SIGCONT
  128. is ignored).
  129. .SH "SEE ALSO"
  130. kill(1),
  131. ptrace(2), kill(2),
  132. sigvec(2), sigblock(2), sigsetmask(2), sigpause(2),
  133. sigstack(2), setjmp(3), tty(4)
  134. @
  135.  
  136.  
  137. 1.1
  138. log
  139. @Initial revision
  140. @
  141. text
  142. @d26 2
  143. a27 1
  144. facility.
  145. a28 62
  146. A signal
  147. is generated by some abnormal event,
  148. initiated by a user at a terminal (quit, interrupt, stop),
  149. by a program error (bus error, etc.),
  150. by request of another program (kill),
  151. or when a process is stopped because it wishes to access
  152. its control terminal while in the background (see
  153. .IR tty (4)).
  154. Signals are optionally generated
  155. when a process resumes after being stopped,
  156. when the status of child processes changes,
  157. or when input is ready at the control terminal.
  158. Most signals cause termination of the receiving process if no action
  159. is taken; some signals instead cause the process receiving them
  160. to be stopped, or are simply discarded if the process has not
  161. requested otherwise.
  162. Except for the SIGKILL and SIGSTOP
  163. signals, the
  164. .I signal
  165. call allows signals either to be ignored
  166. or to cause an interrupt to a specified location.
  167. The following is a list of all signals with
  168. names as in the include file
  169. .RI < signal.h >:
  170. .LP
  171. .nf
  172. .ta \w'SIGVTALRM 'u +\w'15*  'u
  173. SIGHUP    1    hangup
  174. SIGINT    2    interrupt
  175. SIGQUIT    3*    quit
  176. SIGILL    4*    illegal instruction
  177. SIGTRAP    5*    trace trap
  178. SIGIOT    6*    IOT instruction
  179. SIGEMT    7*    EMT instruction
  180. SIGFPE    8*    floating point exception
  181. SIGKILL    9    kill (cannot be caught or ignored)
  182. SIGBUS    10*    bus error
  183. SIGSEGV    11*    segmentation violation
  184. SIGSYS    12*    bad argument to system call
  185. SIGPIPE    13    write on a pipe with no one to read it
  186. SIGALRM    14    alarm clock
  187. SIGTERM    15    software termination signal
  188. SIGURG    16\*b    urgent condition present on socket
  189. SIGSTOP    17\*d    stop (cannot be caught or ignored)
  190. SIGTSTP    18\*d    stop signal generated from keyboard
  191. SIGCONT    19\*b    continue after stop
  192. SIGCHLD    20\*b    child status has changed
  193. SIGTTIN    21\*d    background read attempted from control terminal
  194. SIGTTOU    22\*d    background write attempted to control terminal
  195. SIGIO    23\*b    i/o is possible on a descriptor (see \fIfcntl\fP(2))
  196. SIGXCPU    24    cpu time limit exceeded (see \fIsetrlimit\fP(2))
  197. SIGXFSZ    25    file size limit exceeded (see \fIsetrlimit\fP(2))
  198. SIGVTALRM    26    virtual time alarm (see \fIsetitimer\fP(2))
  199. SIGPROF    27    profiling timer alarm (see \fIsetitimer\fP(2))
  200. SIGWINCH    28\*b    Window size change
  201. SIGUSR1    30    User defined signal 1
  202. SIGUSR2    31    User defined signal 2
  203. .fi
  204. .PP
  205. The starred signals in the list above cause a core image
  206. if not caught or ignored.
  207. .PP
  208. d34 1
  209. a34 6
  210. is reinstated; this default is termination
  211. (with a core image for starred signals)
  212. except for signals marked with \*b or \*d.
  213. Signals marked with \*b are discarded if the action
  214. is SIG_DFL; signals marked
  215. with \*d cause the process to stop.
  216. a105 51
  217. .SH "NOTES  (VAX-11)"
  218. The handler routine can be declared:
  219. .PP
  220.     handler(sig, code, scp)
  221. .PP
  222. Here
  223. .I sig
  224. is the signal number, into which the hardware faults and traps are
  225. mapped as defined below.  Code is a parameter which is either a constant
  226. as given below or, for compatibility mode faults, the code provided by
  227. the hardware. 
  228. .I Scp
  229. is a pointer to the
  230. .I "struct sigcontext"
  231. used by the system to restore the process context from before
  232. the signal.
  233. Compatibility mode faults are distinguished from the
  234. other SIGILL traps by having PSL_CM set in the psl.
  235. .PP
  236. The following defines the mapping of hardware traps to signals
  237. and codes.  All of these symbols are defined in
  238. .RI < signal.h >:
  239. .LP
  240. .ta \w'     Floating/decimal divide by zero   'u +\w'15*  'u +8n
  241. .nf
  242.    Hardware condition    Signal    Code
  243.  
  244. Arithmetic traps:
  245.    Integer overflow    SIGFPE    FPE_INTOVF_TRAP
  246.    Integer division by zero    SIGFPE    FPE_INTDIV_TRAP
  247.    Floating overflow trap    SIGFPE    FPE_FLTOVF_TRAP
  248.    Floating/decimal division by zero    SIGFPE    FPE_FLTDIV_TRAP
  249.    Floating underflow trap    SIGFPE    FPE_FLTUND_TRAP
  250.    Decimal overflow trap    SIGFPE    FPE_DECOVF_TRAP
  251.    Subscript-range    SIGFPE    FPE_SUBRNG_TRAP
  252.    Floating overflow fault    SIGFPE    FPE_FLTOVF_FAULT
  253.    Floating divide by zero fault    SIGFPE    FPE_FLTDIV_FAULT
  254.    Floating underflow fault    SIGFPE    FPE_FLTUND_FAULT
  255. Length access control    SIGSEGV
  256. Protection violation    SIGBUS
  257. Reserved instruction    SIGILL    ILL_RESAD_FAULT
  258. Customer-reserved instr.    SIGEMT
  259. Reserved operand    SIGILL    ILL_PRIVIN_FAULT
  260. Reserved addressing    SIGILL    ILL_RESOP_FAULT
  261. Trace pending    SIGTRAP
  262. Bpt instruction    SIGTRAP
  263. Compatibility-mode    SIGILL    hardware supplied code
  264. Chme    SIGSEGV
  265. Chms    SIGSEGV
  266. Chmu    SIGSEGV
  267. .fi
  268. @
  269.